package com.settlement.system.common.enums;

/**
 * RR-统一账单汇总 记账状态
 * @author author
 */
public enum AccountStatusEnum {
    /**
     * 未生成凭证
     */
    T0_NOT_CREATED("0","未生成凭证"),
    /**
     * 生成凭证中
     */
    T1_IS_CREATING("1","生成凭证中"),
    /**
     * 生成凭证失败
     */
    T8_PRODUCE_NC_FAILED("8","生成凭证失败"),
    /**
     * 已生成凭证
     */
    T2_HAS_CREATED("2","已生成凭证"),
    /**
     * 撤销生成中
     */
    T3_REVOKE_CREATED("3","撤销生成中"),
    /**
     * 推送NC中
     */
    T4_IS_PUSHING_NC("4","推送NC中"),
    /**
     * 已推送NC
     */
    T5_HAS_PUSHED_NC("5","已推送NC"),
    /**
     * 推送NC失败
     */
    T6_PUSH_NC_FAILED("6","推送NC失败"),
    /**
     * 无需生成凭证
     */
    T7_NO_NEED_CREATE("7","无需生成凭证");



    private String no;

    private String name;

    AccountStatusEnum(String no,String name) {
        this.no = no;
        this.name = name;
    }


    public String getNo() {
        return no;
    }

    public String getName() {
        return name;
    }

    /**
     * 根据名称获取编码
     * @param name
     * @return
     */
    public static String getNoByName(String name) {
        AccountStatusEnum[] enums = AccountStatusEnum.values();
        for (int index = 0; index < enums.length; index++) {
            if(enums[index].getName().equals(name)){
                return enums[index].getNo();
            }
        }
        return name;
    }

    /**
     * 根据编码获取名称
     * @param no
     * @return
     */
    public static String getNameByNo(String no) {
        AccountStatusEnum[] enums = values();
        for (int index = 0; index < enums.length; index++) {
            if (enums[index].getNo().equals(no)) {
                return enums[index].getName();
            }
        }
        return null;
    }

}
